package com.itHsuSE.experiment;

public class Experiment1_2 {
    public static void main(String[] args) {
        // 创建一个数组存储这生成的 100 个随机数
        int[] randomNums = createRandomNums(100);
        // 获取 max 和 min
        int max = findMax(randomNums);
        int min = findMin(randomNums);
        // 获取数组中大于50的整数个数
        int count = counter(randomNums);

        System.out.println("输出数阵：\n");
        printNums(randomNums);

        System.out.println("最大值为：" + max);
        System.out.println("最小值为：" + min);
        System.out.println("大于50的数量：" + count);
    }

    /**
     * 生成指定数量的随机数
     *
     * @param count 随机数的数量
     * @return 生成的随机数数组
     */
    private static int[] createRandomNums(int count) {
        int[] numbers = new int[count];
        for (int i = 0; i < count; i++) {
            //Math.random()生成 [0,1) 的double类型数字，* 100 并且转成 int 生成 [0,100) 的int类型数字
            numbers[i] = (int) (Math.random() * 100);
        }
        return numbers;
    }
    /**
     * 找出数组中的最大值
     *
     * @param numbers 数组
     * @return 数组中的最大值
     */
    private static int findMax(int[] numbers) {
        int max = Integer.MIN_VALUE;
        for (int num : numbers) {
            max = Math.max(max, num);
        }
        return max;
    }

    /**
     * 找出数组中的最小值
     *
     * @param numbers 数组
     * @return 数组中的最小值
     */
    private static int findMin(int[] numbers) {
        int min = Integer.MAX_VALUE;
        for (int num : numbers) {
            min = Math.min(min, num);
        }
        return min;
    }

    /**
     * 统计数组中大于50的整数个数
     *
     * @param numbers 数组
     * @return 大于50的整数个数
     */
    private static int counter(int[] numbers) {
        int count = 0;
        for (int num : numbers) {
            if (num > 50) {
                count++;
            }
        }
        return count;
    }

    /**
     * 打印数组中的数阵
     *
     * @param numbers 数组
     */
    private static void printNums(int[] numbers) {
        for (int i = 0; i < numbers.length; i++) {
            System.out.print(numbers[i] + "\t");//用制表符保持美观
            if ((i + 1) % 10 == 0) {//每10个随机数换行，保持美观
                System.out.println();
            }
        }
        System.out.println();
    }
}
